package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela Idctc001
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Idctc001 {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Idctc001.jsp";
	private String versao;
	private String operacao;
	private String dataCorrente;
	private String horaCorrente;
	private long dinideNumpro;
	private long dinideRegger;
	private long dinideNumcpf;
	private String diaideNomide;
	private int dinideNumvia;
	private String diaideNomant;
	private String diaideNompai;
	private String diaideNommae;
	private int datnas;
	private String comuna;
	private String diaideUfnasc;
	private String codsex;
	private String nacion;
	private String estciv;
	private long dinidePispas;
	private int dinideTipsan;
	private int dinideFatorh;
	private String numpos;
	private String diaideSinpar;
	private String diaideMicrof;
	private String codano;
	private String dinideRenaid;
	private String ant0;
	private String doc0;
	private String tra0;
	private String tit0;
	private String mil0;
	private String cnh0;
	private String end0;
	private String pes0;
	private String atu0;
	private String emi0;
	private String nat0;
	private String for0;
	private String diaideObserv;
	private String conf;
	private String empresa;
	private String nomeClasse;
	private String mensagem = "";
	private String textmsg = "";
	private String funcao = "0";
	private String campofocus = "conf";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao; // Classes views
	private int lincol = 0;
	private int camtela = 0;

	// Classes includes
	public Idctc001() {
		inicializar(false);
	}

	public Idctc001(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			versao = "0";
			operacao = "";
			dataCorrente = "";
			dinideNumpro = 0;
			dinideRegger = 0;
			dinideNumcpf = 0;
			diaideNomide = "";
			dinideNumvia = 0;
			diaideNomant = "";
			diaideNompai = "";
			diaideNommae = "";
			datnas = 0;
			comuna = "";
			diaideUfnasc = "";
			codsex = "";
			nacion = "";
			estciv = "";
			dinidePispas = 0;
			dinideTipsan = 0;
			dinideFatorh = 0;
			numpos = "";
			diaideSinpar = "";
			diaideMicrof = "";
			codano = "";
			dinideRenaid = "";
			ant0 = "";
			doc0 = "";
			tra0 = "";
			tit0 = "";
			mil0 = "";
			cnh0 = "";
			end0 = "";
			pes0 = "";
			atu0 = "";
			emi0 = "";
			nat0 = "";
			for0 = "";
			diaideObserv = "";
			conf = "";
			empresa = "";
			nomeClasse = "";
			empresa = sessao.getSisgsisp().getEmpresa();
			operacao = sessao.getSisgsisp().getOperacao();
			versao = sessao.getSisgsisp().getVersao();
		}
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
	}

	public boolean receberTela(boolean primeiraVez, Result result) {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		ValidarConf();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideMicrof();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideNomant();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideNomide();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideNommae();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideNompai();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideObserv();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideSinpar();
		if (temMensagem) {
			return false;
		}
		ValidarDiaideUfnasc();
		if (temMensagem) {
			return false;
		}
		ValidarDinideFatorh();
		if (temMensagem) {
			return false;
		}
		ValidarDinideNumcpf();
		if (temMensagem) {
			return false;
		}
		ValidarDinideNumvia();
		if (temMensagem) {
			return false;
		}
		ValidarDinidePispas();
		if (temMensagem) {
			return false;
		}
		ValidarDinideTipsan();
		if (temMensagem) {
			return false;
		}
		ValidarFuncao();
		if (temMensagem) {
			return false;
		}
		sessao.getSisgsisp().setEmpresa(this.empresa);
		sessao.getSisgsisp().setOperacao(this.operacao);
		sessao.getSisgsisp().setVersao(this.versao);
		return true;
	}

	private void ValidarFuncao() {
		// Consist�ncia F00funcao
		if (!(UtilBean.funcao.equals(UtilBean.ctt_processa) || UtilBean.funcao.equals(UtilBean.ctt_ajuda) || UtilBean.funcao.equals(UtilBean.ctt_pf2))) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarConf() {
		// Consist�ncia F00CONF
		if (!(conf.equals("S") || conf.equals("N"))) {
			enviarMensagem(null, "");
			return;
		}
	}

	private void ValidarDinideNumcpf() {
		// Consist�ncia D01VW-DIDCAD.DINIDE-NUMCPF
	}

	private void ValidarDiaideNomide() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-NOMIDE
	} // CDIR DID-CADASTRO DINIDE-NUMCPF;

	private void ValidarDinideNumvia() {
		// Consist�ncia D01VW-DIDCAD.DINIDE-NUMVIA
	} // CDIR DID-CADASTRO DIAIDE-NOMIDE;

	private void ValidarDiaideNomant() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-NOMANT
	} // CDIR DID-CADASTRO DINIDE-NUMVIA;

	private void ValidarDiaideNompai() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-NOMPAI
	} // CDIR DID-CADASTRO DIAIDE-NOMANT;

	private void ValidarDiaideNommae() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-NOMMAE
	} // CDIR DID-CADASTRO DIAIDE-NOMPAI;

	private void ValidarDiaideUfnasc() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-UFNASC
	} // CDIR DID-CADASTRO DIAIDE-NOMMAE;

	private void ValidarDinidePispas() {
		// Consist�ncia D01VW-DIDCAD.DINIDE-PISPAS
	} // CDIR DID-CADASTRO DIAIDE-UFNASC;

	private void ValidarDinideTipsan() {
		// Consist�ncia D01VW-DIDCAD.DINIDE-TIPSAN
	} // CDIR DID-CADASTRO DINIDE-PISPAS;

	private void ValidarDinideFatorh() {
		// Consist�ncia D01VW-DIDCAD.DINIDE-FATORH
	} // CDIR DID-CADASTRO DINIDE-TIPSAN;

	private void ValidarDiaideSinpar() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-SINPAR
	} // CDIR DID-CADASTRO DINIDE-FATORH;

	private void ValidarDiaideMicrof() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-MICROF
	} // CDIR DID-CADASTRO DIAIDE-SINPAR;

	private void ValidarDiaideObserv() {
		// Consist�ncia D01VW-DIDCAD.DIAIDE-OBSERV
	}

	public String getVersao() {
		return versao;
	}

	public void setVersao(String versao) {
		this.versao = versao;
	}

	public String getOperacao() {
		return operacao;
	}

	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}

	public String getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(String dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public long getDinidenumpro() {
		return dinideNumpro;
	}

	public void setDinidenumpro(long dinideNumpro) {
		this.dinideNumpro = dinideNumpro;
	}

	public long getDinideregger() {
		return dinideRegger;
	}

	public void setDinideregger(long dinideRegger) {
		this.dinideRegger = dinideRegger;
	}

	public long getDinidenumcpf() {
		return dinideNumcpf;
	}

	public void setDinidenumcpf(long dinideNumcpf) {
		this.dinideNumcpf = dinideNumcpf;
	}

	public String getDiaidenomide() {
		return diaideNomide;
	}

	public void setDiaidenomide(String diaideNomide) {
		this.diaideNomide = diaideNomide;
	}

	public int getDinidenumvia() {
		return dinideNumvia;
	}

	public void setDinidenumvia(int dinideNumvia) {
		this.dinideNumvia = dinideNumvia;
	}

	public String getDiaidenomant() {
		return diaideNomant;
	}

	public void setDiaidenomant(String diaideNomant) {
		this.diaideNomant = diaideNomant;
	}

	public String getDiaidenompai() {
		return diaideNompai;
	}

	public void setDiaidenompai(String diaideNompai) {
		this.diaideNompai = diaideNompai;
	}

	public String getDiaidenommae() {
		return diaideNommae;
	}

	public void setDiaidenommae(String diaideNommae) {
		this.diaideNommae = diaideNommae;
	}

	public int getDatnas() {
		return datnas;
	}

	public void setDatnas(int datnas) {
		this.datnas = datnas;
	}

	public String getComuna() {
		return comuna;
	}

	public void setComuna(String comuna) {
		this.comuna = comuna;
	}

	public String getDiaideufnasc() {
		return diaideUfnasc;
	}

	public void setDiaideufnasc(String diaideUfnasc) {
		this.diaideUfnasc = diaideUfnasc;
	}

	public String getCodsex() {
		return codsex;
	}

	public void setCodsex(String codsex) {
		this.codsex = codsex;
	}

	public String getNacion() {
		return nacion;
	}

	public void setNacion(String nacion) {
		this.nacion = nacion;
	}

	public String getEstciv() {
		return estciv;
	}

	public void setEstciv(String estciv) {
		this.estciv = estciv;
	}

	public long getDinidepispas() {
		return dinidePispas;
	}

	public void setDinidepispas(long dinidePispas) {
		this.dinidePispas = dinidePispas;
	}

	public int getDinidetipsan() {
		return dinideTipsan;
	}

	public void setDinidetipsan(int dinideTipsan) {
		this.dinideTipsan = dinideTipsan;
	}

	public int getDinidefatorh() {
		return dinideFatorh;
	}

	public void setDinidefatorh(int dinideFatorh) {
		this.dinideFatorh = dinideFatorh;
	}

	public String getNumpos() {
		return numpos;
	}

	public void setNumpos(String numpos) {
		this.numpos = numpos;
	}

	public String getDiaidesinpar() {
		return diaideSinpar;
	}

	public void setDiaidesinpar(String diaideSinpar) {
		this.diaideSinpar = diaideSinpar;
	}

	public String getDiaidemicrof() {
		return diaideMicrof;
	}

	public void setDiaidemicrof(String diaideMicrof) {
		this.diaideMicrof = diaideMicrof;
	}

	public String getCodano() {
		return codano;
	}

	public void setCodano(String codano) {
		this.codano = codano;
	}

	public String getDiniderenaid() {
		return dinideRenaid;
	}

	public void setDiniderenaid(String dinideRenaid) {
		this.dinideRenaid = dinideRenaid;
	}

	public String getAnt0() {
		return ant0;
	}

	public void setAnt0(String ant0) {
		this.ant0 = ant0;
	}

	public String getDoc0() {
		return doc0;
	}

	public void setDoc0(String doc0) {
		this.doc0 = doc0;
	}

	public String getTra0() {
		return tra0;
	}

	public void setTra0(String tra0) {
		this.tra0 = tra0;
	}

	public String getTit0() {
		return tit0;
	}

	public void setTit0(String tit0) {
		this.tit0 = tit0;
	}

	public String getMil0() {
		return mil0;
	}

	public void setMil0(String mil0) {
		this.mil0 = mil0;
	}

	public String getCnh0() {
		return cnh0;
	}

	public void setCnh0(String cnh0) {
		this.cnh0 = cnh0;
	}

	public String getEnd0() {
		return end0;
	}

	public void setEnd0(String end0) {
		this.end0 = end0;
	}

	public String getPes0() {
		return pes0;
	}

	public void setPes0(String pes0) {
		this.pes0 = pes0;
	}

	public String getAtu0() {
		return atu0;
	}

	public void setAtu0(String atu0) {
		this.atu0 = atu0;
	}

	public String getEmi0() {
		return emi0;
	}

	public void setEmi0(String emi0) {
		this.emi0 = emi0;
	}

	public String getNat0() {
		return nat0;
	}

	public void setNat0(String nat0) {
		this.nat0 = nat0;
	}

	public String getFor0() {
		return for0;
	}

	public void setFor0(String for0) {
		this.for0 = for0;
	}

	public String getDiaideobserv() {
		return diaideObserv;
	}

	public void setDiaideobserv(String diaideObserv) {
		this.diaideObserv = diaideObserv;
	}

	public String getConf() {
		return conf;
	}

	public void setConf(String conf) {
		this.conf = conf;
	}

	public String getEmpresa() {
		return empresa;
	}

	public void setEmpresa(String empresa) {
		this.empresa = empresa;
	}

	public String getNomeClasse() {
		return nomeClasse;
	}

	public void setNomeClasse(String nomeClasse) {
		this.nomeClasse = nomeClasse;
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getTextmsg() {
		return textmsg;
	}

	public void setTextmsg(String textmsg) {
		this.textmsg = textmsg;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}

	public int getLincol() {
		return lincol;
	}

	public void setLincol(int lincol) {
		this.lincol = lincol;
	}

	public int getCamtela() {
		return camtela;
	}

	public void setCamtela(int camtela) {
		this.camtela = camtela;
	}

}
